# 仅GUI适用，接收数据
from io import StringIO
import json
import re

f = open("data.json", "r", encoding="utf-8")
fb = json.loads(f.read())
f.close()
ms = fb["user"]
sign = '0'
while sign == '0':
    name = input("输入姓名:")
    num = input("输入学号:")
    while len(num) != 15:
        num = input("学号位数出错,请重新输入")
    mail = input("请输入邮箱(0表示为空，格式不对表示为空，空表示不进行通知)")
    mai = r"^[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){0,4}@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+){0,4}$"
    print(re.match(mai, mail))
    while re.match(mai, mail) == None:
        mail = input("邮箱格式错误,请重新输入")
    sign = input("输入0重新输入")
sign = '0'
while sign == '0':
    ident = input("""
              身份类型:
                A.内地学生（滨文校区，本部本科生）
                B.内地学生（滨文校区，本部研究生）
                C.内地学生（滨文校区，滨江学院本科生）
                D.内地学生（富春校区，本部本科生）
                E.内地学生（富春校区，本部研究生）
                F.内地学生（富春校区，滨江学院本科生）
                G.港澳台学生
                H.留学生
                I.内地学生(继续教育学生)
                其中输入'A'表示一个选项
              """)
    sign = input("输入0重新输入")
while True:
    if ident == 'A' or ident == 'B' or ident == 'C' or ident == 'D' or ident == 'a' or ident == 'b' or ident == 'c' or ident == 'd' or ident == 'E' or ident == 'e' or ident == 'f' or ident == 'g' or ident == 'h' or ident == 'i' or ident == 'F' or ident == 'G' or ident == 'H' or ident == 'I':
        break
    else:
        ident = input("请输入正确的答案")
if ident == 'A' or ident == 'a':
    ident = "A.内地学生（滨文校区，本部本科生）"
elif ident == 'B' or ident == 'b':
    ident = "B.内地学生（滨文校区，本部研究生）"
elif ident == 'C' or ident == 'c':
    ident = "C.内地学生（滨文校区，滨江学院本科生）"
else:
    ident = "D.内地学生（富春校区，本部本科生）"
sign = '0'
while sign == '0':
    body = input("""
            早晨、下午体温状况（早晨打卡后下午需再次填报提问状况）
                A.上午体温<37.3°C
                C.下午体温<37.3°C
                这里只有'A'和'C'两个选项
             """)
    sign = input("输入0重新输入")
while True:
    if body == 'A' or body == 'a' or body == 'C' or body == 'c':
        break
    else:
        body = input("请输入正确的选项('A'或者'C' 不带引号)")
if body == 'A' or body == 'a':
    body = "A.上午体温<37.3°C"
else:
    body = "C.下午体温<37.3°C"

m = {
    "身份类型": {
        "TYPE": "radio",
        "ANSWERTEXT": ident
    },
    "本人身体是否有不适": {
        "TYPE": "checkbox",
        "ANSWERTEXT": "f.无以上情况"
    },
    "目前本人的实际状态": {
        "TYPE": "radio",
        "ANSWERTEXT": "正常"
    },
    "14天内是否有聚餐": {
        "TYPE": "radio",
        "ANSWERTEXT": "无"
    },
    "今日是否在校或来校": {
        "TYPE": "radio",
        "ANSWERTEXT": "是"
    },
    "当天到校情况": {
        "TYPE": "radio",
        "ANSWERTEXT": "A.在校"
    },
    "早晨、下午体温状况（早晨打卡后下午需再次填报提问状况）": {
        "TYPE": "radio",
        "ANSWERTEXT": body
    },
    "中高风险地区返回浙江或途径中高风险地区返回浙江的人员是否进行核酸测试？": {
        "TYPE": "radio",
        "ANSWERTEXT": "E.未离开浙江或非中高风险区域返浙人员"
    }
}

ms_user = {
    "name": name,
    "mail": mail,
    "number": num,
    "content": m
}
ms.append(ms_user)
user = {
    "user": ms
}
with open('data.json', 'w', encoding='utf-8') as f:
    json.dump(user, f, ensure_ascii=False, indent=4)

print("--------Add Successful!----------")
